// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

const RESET = { title: '重置', default: true, round: true, mini: true }

// ============================== 导出简易结构树 ============================== //

export default {
  // —————————————————————————————— 模块路径 —————————————————————————————— //

  path: { type: String, default: '' }, // 示例： '' 或 'major' 或 'major/minor'

  // —————————————————————————————— 双向绑定 —————————————————————————————— //

  chosenId: { type: String, default: '' }, // 选中 ID (以 v-modal="id" 或 v-modal="obj.id" 的方式使用)

  // —————————————————————————————— 数据属性 —————————————————————————————— //

  tree: { type: Array, default: null }, // 结构树数据 (为空则取 path 模块的 state.tree)
  field: { type: Array, default: null }, // 字段列表 (为空则取 state.TREE_FIELD，规则 [children, id, name])

  disabled: { type: Boolean, default: false }, // 是否禁用所有选择

  init: { type: String, default: '' }, // 默认的选中 ID
  initRoot: { type: Boolean, default: false }, // 是否默认选中根节点
  initFirst: { type: Boolean, default: false }, // 是否默认选中第一个叶子

  expandAll: { type: Boolean, default: false }, // 是否默认展开所有节点
  expandRoot: { type: Boolean, default: false }, // 是否默认展开根节点
  expandOnClick: { type: Boolean, default: false }, // 是否在点击节点的时候展开或者收缩节点
  noPadding: { type: Boolean, default: false }, // 是否隐藏内边距

  // —————————————————————————————— 筛选属性 —————————————————————————————— //

  noFilter: { type: Boolean, default: false }, // 是否隐藏筛选框
  filterTip: { type: String, default: '请输入名称' }, // placeholder 提示
  filterPrefix: { type: String, default: '' }, // 前缀图标 (以 el-icon-* 或 iconfont 开头)
  filterSuffix: { type: String, default: 'el-icon-search' }, // 后缀图标 (同上)

  // —————————————————————————————— 重置属性 —————————————————————————————— //

  hasReset: { type: Boolean, default: false }, // 是否显示重置按钮
  resetBtn: { type: Object, default: () => RESET }, // 重置按钮属性 (见 BtnCommon)

  // —————————————————————————————— 高度属性 —————————————————————————————— //

  height: { type: [Number, String], default: null }, // 指定高度，如 500 '500px' '50%'

  treeHeight: { type: [Number, String], default: null }, // 仅结构树高度，如 500 '500px' '50%'

  // —————————————————————————————— 尺寸属性 —————————————————————————————— //

  ...CORE.WEB.BASE.SIZE,

  // —————————————————————————————— 滚动条样式 —————————————————————————————— //

  ...CORE.WEB.BASE.SCROLL,

  // —————————————————————————————— 原生属性 —————————————————————————————— //

  elProps: { type: Object, default: () => ({}) }, // el-tree 原生配置项
}
